package com.zg.scf.domain.req.account;

import com.zg.common.core.req.AddReq;
import com.zg.scf.enm.StateEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * DESCRIPTION
 *
 * @author zhanfeng.liang
 * @since 2025-07-14
 */

@Data
@ApiModel(value = "账户信息AddReq")
public class AccAccountAddReq extends AddReq {

    /**
     * 企业名称，对应表中 COMPANY_NAME 字段，类型 VARCHAR2(255)
     */
    @ApiModelProperty(value = "企业名称")
    private String companyName;

    /**
     * 企业ID，对应表中 COMPANY_ID 字段，类型 NUMBER
     */
    @ApiModelProperty(value = "企业ID")
    @NotNull(message = "企业ID不能为空")
    private Long companyId;

    /**
     * 银行ID，对应表中 BANK_ID 字段，类型 NUMBER
     */
    @ApiModelProperty(value = "银行ID")
    @NotNull(message = "银行ID不能为空")
    private Long bankId;

    /**
     * 银行账号，对应表中 BANK_ACCOUNT 字段，类型 VARCHAR2(255)
     */
    @ApiModelProperty(value = "银行账号")
    @NotEmpty(message = "银行账号不能为空")
    private String bankAccount;

    /**
     * 账户类型，对应表中 ACCOUNT_TYPE 字段，类型 VARCHAR2(100)
     */
    @ApiModelProperty(value = "账户类型")
    @NotEmpty(message = "账户类型不能为空")
    private String accountType;

    /**
     * 余额，对应表中 BALANCE 字段，类型 NUMBER(34,4)，使用 BigDecimal 处理高精度小数
     */
    @ApiModelProperty(value = "余额")
    private BigDecimal balance=BigDecimal.ZERO;

    @ApiModelProperty(value = "状态")
    private String  state= StateEnum.Y.getValue();

    @ApiModelProperty(value = "默认账户是0")
    private Integer  sort;
}
